

#include "../inc/PageHistory.h"
#include "../inc/Page.h"
#include "../inc/URL.h"
#include <assert.h>


            PageHistory::PageHistory(){
            	PageList = new BST<Page>();
            }

            PageHistory::~PageHistory(){
            	delete PageList;
            }

            bool PageHistory::containsURL(URL& address){
            	Page temp(address);
            	return PageList->contains(temp);
            }

            Page* PageHistory::getPage(URL &address){
            	assert(&address!=NULL);
            	Page temp(address);
            	return PageList->FindItem(temp);
            }

            bool PageHistory::add(Page &site){
            	assert(&site!=NULL);
            	URL temp= site.getURL();
            	if (!containsURL(temp)){
            		PageList->Insert(site);
            		return true;
            	}
            	return false;
            }

            Page* PageHistory::getBasePage(){
				return PageList->GetRoot();
			}

            LinkedList<Page>* PageHistory::toLinkedList(){
            	return PageList->toLinkedList();
            }

